<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>Record (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Record (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Record.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/hslf/record/PPDrawingGroup.html" title="class in org.apache.poi.hslf.record"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/hslf/record/RecordAtom.html" title="class in org.apache.poi.hslf.record"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/hslf/record/Record.html" target="_top">FRAMES</a></li>
<li><a href="Record.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li><a href="#field_summary">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li><a href="#field_detail">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.hslf.record</p>
<h2 title="Class Record" class="title">Class Record</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.poi.hslf.record.Record</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/poi/hslf/record/RecordAtom.html" title="class in org.apache.poi.hslf.record">RecordAtom</a>, <a href="../../../../../org/apache/poi/hslf/record/RecordContainer.html" title="class in org.apache.poi.hslf.record">RecordContainer</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <strong>Record</strong>
extends java.lang.Object</pre>
<div class="block">This abstract class represents a record in the PowerPoint document.
 Record classes should extend with RecordContainer or RecordAtom, which
  extend this in turn.</div>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>Nick Burch</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static <a href="../../../../../org/apache/poi/util/POILogger.html" title="class in org.apache.poi.util">POILogger</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#logger">logger</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#Record()">Record</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#buildRecordAtOffset(byte[], int)">buildRecordAtOffset</a></strong>(byte[]&nbsp;b,
                   int&nbsp;offset)</code>
<div class="block">Build and return the Record at the given offset.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#createRecordForType(long, byte[], int, int)">createRecordForType</a></strong>(long&nbsp;type,
                   byte[]&nbsp;b,
                   int&nbsp;start,
                   int&nbsp;len)</code>
<div class="block">For a given type (little endian bytes 3 and 4 in record header),
  byte array, start position and length:
  will return a Record object that will handle that record

 Remember that while PPT stores the record lengths as 8 bytes short
  (not including the size of the header), this code assumes you're
  passing in corrected lengths</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#findChildRecords(byte[], int, int)">findChildRecords</a></strong>(byte[]&nbsp;b,
                int&nbsp;start,
                int&nbsp;len)</code>
<div class="block">Default method for finding child records of a container record</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#getChildRecords()">getChildRecords</a></strong>()</code>
<div class="block">Fetch all the child records of this record
 If this record is an atom, will return null
 If this record is a non-atom, but has no children, will return
  an empty array</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#getRecordType()">getRecordType</a></strong>()</code>
<div class="block">Returns the type (held as a little endian in bytes 3 and 4)
  that this class handles</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#isAnAtom()">isAnAtom</a></strong>()</code>
<div class="block">Is this record type an Atom record (only has data),
  or is it a non-Atom record (has other records)?</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#writeLittleEndian(int, java.io.OutputStream)">writeLittleEndian</a></strong>(int&nbsp;i,
                 java.io.OutputStream&nbsp;o)</code>
<div class="block">When writing out, write out a signed int (32bit) in Little Endian format</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#writeLittleEndian(short, java.io.OutputStream)">writeLittleEndian</a></strong>(short&nbsp;s,
                 java.io.OutputStream&nbsp;o)</code>
<div class="block">When writing out, write out a signed short (16bit) in Little Endian format</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/hslf/record/Record.html#writeOut(java.io.OutputStream)">writeOut</a></strong>(java.io.OutputStream&nbsp;o)</code>
<div class="block">Have the contents printer out into an OutputStream, used when
  writing a file back out to disk
 (Normally, atom classes will keep their bytes around, but
  non atom classes will just request the bytes from their
  children, then chuck on their header and return)</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="logger">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>logger</h4>
<pre>protected static final&nbsp;<a href="../../../../../org/apache/poi/util/POILogger.html" title="class in org.apache.poi.util">POILogger</a> logger</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="Record()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Record</h4>
<pre>public&nbsp;Record()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="isAnAtom()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAnAtom</h4>
<pre>public abstract&nbsp;boolean&nbsp;isAnAtom()</pre>
<div class="block">Is this record type an Atom record (only has data),
  or is it a non-Atom record (has other records)?</div>
</li>
</ul>
<a name="getRecordType()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRecordType</h4>
<pre>public abstract&nbsp;long&nbsp;getRecordType()</pre>
<div class="block">Returns the type (held as a little endian in bytes 3 and 4)
  that this class handles</div>
</li>
</ul>
<a name="getChildRecords()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChildRecords</h4>
<pre>public abstract&nbsp;<a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a>[]&nbsp;getChildRecords()</pre>
<div class="block">Fetch all the child records of this record
 If this record is an atom, will return null
 If this record is a non-atom, but has no children, will return
  an empty array</div>
</li>
</ul>
<a name="writeOut(java.io.OutputStream)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeOut</h4>
<pre>public abstract&nbsp;void&nbsp;writeOut(java.io.OutputStream&nbsp;o)
                       throws java.io.IOException</pre>
<div class="block">Have the contents printer out into an OutputStream, used when
  writing a file back out to disk
 (Normally, atom classes will keep their bytes around, but
  non atom classes will just request the bytes from their
  children, then chuck on their header and return)</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="writeLittleEndian(int, java.io.OutputStream)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeLittleEndian</h4>
<pre>public static&nbsp;void&nbsp;writeLittleEndian(int&nbsp;i,
                     java.io.OutputStream&nbsp;o)
                              throws java.io.IOException</pre>
<div class="block">When writing out, write out a signed int (32bit) in Little Endian format</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="writeLittleEndian(short, java.io.OutputStream)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeLittleEndian</h4>
<pre>public static&nbsp;void&nbsp;writeLittleEndian(short&nbsp;s,
                     java.io.OutputStream&nbsp;o)
                              throws java.io.IOException</pre>
<div class="block">When writing out, write out a signed short (16bit) in Little Endian format</div>
<dl><dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="buildRecordAtOffset(byte[], int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildRecordAtOffset</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a>&nbsp;buildRecordAtOffset(byte[]&nbsp;b,
                         int&nbsp;offset)</pre>
<div class="block">Build and return the Record at the given offset.
 Note - does less error checking and handling than findChildRecords</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>b</code> - The byte array to build from</dd><dd><code>offset</code> - The offset to build at</dd></dl>
</li>
</ul>
<a name="findChildRecords(byte[], int, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findChildRecords</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a>[]&nbsp;findChildRecords(byte[]&nbsp;b,
                        int&nbsp;start,
                        int&nbsp;len)</pre>
<div class="block">Default method for finding child records of a container record</div>
</li>
</ul>
<a name="createRecordForType(long, byte[], int, int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createRecordForType</h4>
<pre>public static&nbsp;<a href="../../../../../org/apache/poi/hslf/record/Record.html" title="class in org.apache.poi.hslf.record">Record</a>&nbsp;createRecordForType(long&nbsp;type,
                         byte[]&nbsp;b,
                         int&nbsp;start,
                         int&nbsp;len)</pre>
<div class="block">For a given type (little endian bytes 3 and 4 in record header),
  byte array, start position and length:
  will return a Record object that will handle that record

 Remember that while PPT stores the record lengths as 8 bytes short
  (not including the size of the header), this code assumes you're
  passing in corrected lengths</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Record.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/hslf/record/PPDrawingGroup.html" title="class in org.apache.poi.hslf.record"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/hslf/record/RecordAtom.html" title="class in org.apache.poi.hslf.record"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/hslf/record/Record.html" target="_top">FRAMES</a></li>
<li><a href="Record.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li><a href="#field_summary">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li><a href="#field_detail">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
